package day6;

public class 大数相乘 {
	public String solve (String ss, String tt) {
        // 将字符串逆置并转换为字符数组以方便做乘法与下标映射；
        char[] s=new StringBuilder(ss).reverse().toString().toCharArray();
        char[] t=new StringBuilder(tt).reverse().toString().toCharArray();
        int m=s.length,n=t.length;
        int[] tmp=new int[m+n];
        //无进位乘法并累加到对应位置
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                tmp[i+j]+=(s[i]-'0')*(t[j]-'0');
            }
        }
        int c=0;
        StringBuilder ret=new StringBuilder();
        for(int x:tmp){
            c+=x;
            ret.append((char)(c%10+'0'));
            c/=10;
        }
        //处理进位
        while(c!=0){
            ret.append((char)(c%10+'0'));
            c/=10;
        }
        //处理前导0
        while(ret.length()>1&&ret.charAt(ret.length()-1)=='0'){
            ret.deleteCharAt(ret.length()-1);
        }
        return ret.reverse().toString();
    }
}
